-- Network Working Group                                          J. Pastor
-- Request for Comments: 3873                                  M. Belinchon
-- Category: Standards Track                                       Ericsson
--                                                           September 2004


--               Stream Control Transmission Protocol (SCTP)
--                    Management Information Base (MIB)

   SCTP-MIB DEFINITIONS ::= BEGIN

   IMPORTS
     MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32, Gauge32,
     Counter32, Counter64, mib-2
          FROM SNMPv2-SMI                        -- [RFC2578]
     TimeStamp, TruthValue
          FROM SNMPv2-TC                         -- [RFC2579]
     MODULE-COMPLIANCE, OBJECT-GROUP
          FROM SNMPv2-CONF                       -- [RFC2580]
     InetAddressType, InetAddress, InetPortNumber
          FROM INET-ADDRESS-MIB;                 -- [RFC3291]

   sctpMIB MODULE-IDENTITY
     LAST-UPDATED "200409020000Z"       -- 2nd September 2004
     ORGANIZATION "IETF SIGTRAN Working Group"
     CONTACT-INFO
          "
           WG EMail: sigtran@ietf.org

           Web Page:
                 http://www.ietf.org/html.charters/sigtran-charter.html

           Chair:     Lyndon Ong
                      Ciena Corporation
                      0480 Ridgeview Drive
                      Cupertino, CA  95014
                      USA
                      Tel:
                      Email: lyong@ciena.com

           Editors:   Maria-Carmen Belinchon
                      R&D Department
                      Ericsson Espana S. A.
                      Via de los Poblados, 13
                      28033 Madrid
                      Spain
                      Tel:   +34 91 339 3535
                      Email: Maria.C.Belinchon@ericsson.com

                      Jose-Javier Pastor-Balbas
                      R&D Department
                      Ericsson Espana S. A.
                      Via de los Poblados, 13
                      28033 Madrid
                      Spain
                      Tel:   +34 91 339 1397
               Email: J.Javier.Pastor@ericsson.com
          "
     DESCRIPTION
          "The MIB module for managing SCTP implementations.

          Copyright (C) The Internet Society (2004).  This version of
          this MIB module is part of RFC 3873; see the RFC itself for
          full legal notices. "

     REVISION "200409020000Z"       -- 2nd September 2004

     DESCRIPTION " Initial version, published as RFC 3873"

     ::= {  mib-2 104 }

   -- the SCTP base variables group

   sctpObjects OBJECT IDENTIFIER ::= { sctpMIB 1 }

   sctpStats   OBJECT IDENTIFIER ::= { sctpObjects 1 }
   sctpParams  OBJECT IDENTIFIER ::= { sctpObjects 2 }

   -- STATISTICS
   -- **********

   -- STATE-RELATED STATISTICS

   sctpCurrEstab OBJECT-TYPE
     SYNTAX         Gauge32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The number of associations for which the current state is
          either ESTABLISHED, SHUTDOWN-RECEIVED or SHUTDOWN-PENDING."
     REFERENCE
          "Section 4 in RFC2960 covers the SCTP   Association state
          diagram."

     ::= { sctpStats 1 }


   sctpActiveEstabs OBJECT-TYPE
     SYNTAX         Counter32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The number of times that associations have made a direct
          transition to the ESTABLISHED state from the COOKIE-ECHOED
          state: COOKIE-ECHOED -> ESTABLISHED. The upper layer initiated
          the association attempt."
     REFERENCE
          "Section 4 in RFC2960 covers the SCTP   Association state
          diagram."

     ::= { sctpStats  2 }

   sctpPassiveEstabs OBJECT-TYPE
     SYNTAX         Counter32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The number of times that associations have made a direct
          transition to the ESTABLISHED state from the CLOSED state:
          CLOSED -> ESTABLISHED. The remote endpoint initiated the
          association attempt."
     REFERENCE
          "Section 4 in RFC2960 covers the SCTP   Association state
          diagram."

     ::= { sctpStats  3 }


   sctpAborteds OBJECT-TYPE
     SYNTAX         Counter32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The number of times that associations have made a direct
          transition to the CLOSED state from any state using the
          primitive 'ABORT': AnyState --Abort--> CLOSED. Ungraceful
          termination of the association."
     REFERENCE
          "Section 4 in RFC2960 covers the SCTP   Association state
          diagram."

     ::= { sctpStats  4 }


   sctpShutdowns OBJECT-TYPE
     SYNTAX         Counter32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The number of times that associations have made a direct
          transition to the CLOSED state from either the SHUTDOWN-SENT
          state or the SHUTDOWN-ACK-SENT state. Graceful termination of
          the association."
     REFERENCE
          "Section 4 in RFC2960 covers the SCTP   Association state
          diagram."

     ::= { sctpStats  5 }

   -- OTHER LAYER STATISTICS

   sctpOutOfBlues OBJECT-TYPE
     SYNTAX         Counter32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The number of out of the blue packets received by the host.
          An out of the blue packet is an SCTP packet correctly formed,
          including the proper checksum, but for which the receiver was
          unable to identify an appropriate association."
     REFERENCE
          "Section 8.4 in RFC2960 deals with the Out-Of-The-Blue
           (OOTB) packet definition and procedures."

     ::= { sctpStats  6 }

   sctpChecksumErrors OBJECT-TYPE
     SYNTAX         Counter32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The number of SCTP packets received with an invalid
          checksum."
     REFERENCE
          "The checksum is located at the end of the SCTP packet as per
          Section 3.1 in RFC2960. RFC3309 updates SCTP to use a 32 bit
          CRC checksum."

   ::= { sctpStats  7 }

   sctpOutCtrlChunks OBJECT-TYPE
     SYNTAX         Counter64
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The number of SCTP control chunks sent (retransmissions are
          not included). Control chunks are those chunks different from
          DATA."
     REFERENCE
          "Sections 1.3.5 and 1.4 in RFC2960 refer to control chunk as
          those chunks different from those that contain user
          information, i.e., DATA chunks."

     ::= { sctpStats  8 }

   sctpOutOrderChunks OBJECT-TYPE
     SYNTAX         Counter64
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The number of SCTP ordered data chunks sent (retransmissions
          are not included)."
     REFERENCE
          "Section 3.3.1 in RFC2960 defines the ordered data chunk."

     ::= { sctpStats  9 }

   sctpOutUnorderChunks OBJECT-TYPE
     SYNTAX         Counter64
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The number of SCTP unordered chunks (data chunks in which the
          U bit is set to 1) sent (retransmissions are not included)."
     REFERENCE
          "Section 3.3.1 in RFC2960 defines the unordered data chunk."

     ::= { sctpStats  10 }

   sctpInCtrlChunks OBJECT-TYPE
     SYNTAX         Counter64
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The number of SCTP control chunks received (no duplicate
          chunks included)."
     REFERENCE
          "Sections 1.3.5 and 1.4 in RFC2960 refer to control chunk as
          those chunks different from those that contain user
          information, i.e., DATA chunks."

     ::= { sctpStats  11 }


   sctpInOrderChunks OBJECT-TYPE
     SYNTAX         Counter64
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The number of SCTP ordered data chunks received (no duplicate
          chunks included)."
     REFERENCE
          "Section 3.3.1 in RFC2960 defines the ordered data chunk."

     ::= { sctpStats  12 }


   sctpInUnorderChunks OBJECT-TYPE
     SYNTAX         Counter64
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The number of SCTP unordered chunks (data chunks in which the
          U bit is set to 1) received (no duplicate chunks included)."
     REFERENCE
          "Section 3.3.1 in RFC2960 defines the unordered data chunk."

     ::= { sctpStats  13 }



   sctpFragUsrMsgs OBJECT-TYPE
     SYNTAX         Counter64
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION

          "The number of user messages that have to be fragmented
          because of the MTU."

     ::= { sctpStats  14 }


   sctpReasmUsrMsgs OBJECT-TYPE
     SYNTAX         Counter64
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The number of user messages reassembled, after conversion
          into DATA chunks."
     REFERENCE
          "Section 6.9 in RFC2960 includes a description of the
          reassembly process."

     ::= { sctpStats  15 }

   sctpOutSCTPPacks OBJECT-TYPE
     SYNTAX         Counter64
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The number of SCTP packets sent. Retransmitted DATA chunks
          are included."

     ::= { sctpStats  16 }


   sctpInSCTPPacks OBJECT-TYPE
     SYNTAX         Counter64
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The number of SCTP packets received. Duplicates are
          included."

     ::= { sctpStats  17 }

   sctpDiscontinuityTime OBJECT-TYPE
     SYNTAX         TimeStamp
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The value of sysUpTime on the most recent occasion at which
          any one or more of this general statistics counters suffered a
          discontinuity.  The relevant counters are the specific
          instances associated with this interface of any Counter32 or
          Counter64 object contained in the SCTP layer statistics
          (defined below sctpStats branch).  If no such discontinuities
          have occurred since the last re-initialization of the local
          management subsystem, then this object contains a zero value."
     REFERENCE
          "The inclusion of this object is recommended by RFC2578."

     ::= { sctpStats 18 }


   -- PROTOCOL GENERAL VARIABLES
   -- **************************

   sctpRtoAlgorithm OBJECT-TYPE
     SYNTAX         INTEGER {
                         other(1),      -- Other new one. Future use
                         vanj(2)        -- Van Jacobson's algorithm
                    }
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The algorithm used to determine the timeout value (T3-rtx)
          used for re-transmitting unacknowledged chunks."
     REFERENCE
          "Section 6.3.1 and 6.3.2 in RFC2960 cover the RTO calculation
          and retransmission timer rules."
     DEFVAL {vanj} -- vanj(2)

     ::= { sctpParams 1 }


   sctpRtoMin OBJECT-TYPE
     SYNTAX         Unsigned32
     UNITS          "milliseconds"
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The minimum value permitted by a SCTP implementation for the
          retransmission timeout value, measured in milliseconds.  More
          refined semantics for objects of this type depend upon the
          algorithm used to determine the retransmission timeout value.

          A retransmission time value of zero means immediate
          retransmission.

          The value of this object has to be lower than or equal to
          stcpRtoMax's value."
     DEFVAL {1000} -- milliseconds

     ::= { sctpParams 2 }

   sctpRtoMax OBJECT-TYPE
     SYNTAX         Unsigned32
     UNITS          "milliseconds"
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The maximum value permitted by a SCTP implementation for the
          retransmission timeout value, measured in milliseconds.  More
          refined semantics for objects of this type depend upon the
          algorithm used to determine the retransmission timeout value.

          A retransmission time value of zero means immediate re-
          transmission.

          The value of this object has to be greater than or equal to
          stcpRtoMin's value."
     DEFVAL {60000} -- milliseconds

       ::= { sctpParams 3 }


   sctpRtoInitial OBJECT-TYPE
     SYNTAX         Unsigned32
     UNITS          "milliseconds"
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The initial value for the retransmission timer.

          A retransmission time value of zero means immediate re-
          transmission."
     DEFVAL {3000} -- milliseconds

     ::= { sctpParams 4 }


   sctpMaxAssocs OBJECT-TYPE
     SYNTAX         Integer32 (-1 | 0..2147483647)
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The limit on the total number of associations the entity can
          support. In entities where the maximum number of associations
          is dynamic, this object should contain the value -1."

     ::= { sctpParams 5 }


   sctpValCookieLife OBJECT-TYPE
     SYNTAX         Unsigned32
     UNITS          "milliseconds"

     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "Valid cookie life in the 4-way start-up handshake procedure."
     REFERENCE
          "Section 5.1.3 in RFC2960 explains the cookie generation
          process. Recommended value is per section 14 in RFC2960."
     DEFVAL {60000} -- milliseconds

     ::= { sctpParams 6 }

   sctpMaxInitRetr OBJECT-TYPE
     SYNTAX         Unsigned32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The maximum number of retransmissions at the start-up phase
          (INIT and COOKIE ECHO chunks). "
     REFERENCE
          "Section 5.1.4, 5.1.6 in RFC2960 refers to Max.Init.Retransmit
          parameter. Recommended value is per section 14 in RFC2960."
     DEFVAL {8} -- number of attempts

     ::= { sctpParams 7 }


   -- TABLES
   -- ******

   -- the SCTP Association TABLE

   -- The SCTP association table contains information about each
   -- association in which the local endpoint is involved.


   sctpAssocTable OBJECT-TYPE
     SYNTAX         SEQUENCE OF SctpAssocEntry
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "A table containing SCTP association-specific information."

     ::= { sctpObjects 3 }


   sctpAssocEntry OBJECT-TYPE
     SYNTAX         SctpAssocEntry
     MAX-ACCESS     not-accessible

     STATUS         current
     DESCRIPTION
          "General common variables and statistics for the whole
          association."
     INDEX          { sctpAssocId }

     ::= { sctpAssocTable 1 }

   SctpAssocEntry ::= SEQUENCE {
     sctpAssocId                        Unsigned32,
     sctpAssocRemHostName               OCTET STRING,
     sctpAssocLocalPort                 InetPortNumber,
     sctpAssocRemPort                   InetPortNumber,
     sctpAssocRemPrimAddrType           InetAddressType,
     sctpAssocRemPrimAddr               InetAddress,
     sctpAssocHeartBeatInterval         Unsigned32,
     sctpAssocState                     INTEGER,
     sctpAssocInStreams                 Unsigned32,
     sctpAssocOutStreams                Unsigned32,
     sctpAssocMaxRetr                   Unsigned32,
     sctpAssocPrimProcess               Unsigned32,
     sctpAssocT1expireds                Counter32,     -- Statistic
     sctpAssocT2expireds                Counter32,     -- Statistic
     sctpAssocRtxChunks                 Counter32,     -- Statistic
     sctpAssocStartTime                 TimeStamp,
     sctpAssocDiscontinuityTime         TimeStamp
     }


   sctpAssocId OBJECT-TYPE
     SYNTAX         Unsigned32 (1..4294967295)
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "Association Identification. Value identifying the
          association. "

     ::= { sctpAssocEntry 1 }


   sctpAssocRemHostName OBJECT-TYPE
     SYNTAX         OCTET STRING (SIZE(0..255))
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The peer's DNS name. This object needs to have the same
          format as the encoding in the DNS protocol.  This implies that
          the domain name can be up to 255 octets long, each octet being
          0<=x<=255 as value with US-ASCII A-Z having a case insensitive
          matching.

          If no DNS domain name was received from the peer at init time
          (embedded in the INIT or INIT-ACK chunk), this object is
          meaningless. In such cases the object MUST contain a zero-
          length string value. Otherwise, it contains the remote host
          name received at init time."
     ::= { sctpAssocEntry 2 }


   sctpAssocLocalPort OBJECT-TYPE
     SYNTAX         InetPortNumber (1..65535)
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The local SCTP port number used for this association."

     ::= { sctpAssocEntry 3 }


   sctpAssocRemPort OBJECT-TYPE
     SYNTAX         InetPortNumber (1..65535)
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The remote SCTP port number used for this association."

     ::= { sctpAssocEntry 4 }


   sctpAssocRemPrimAddrType OBJECT-TYPE
     SYNTAX         InetAddressType
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The internet type of primary remote IP address. "

     ::= { sctpAssocEntry 5 }

   sctpAssocRemPrimAddr OBJECT-TYPE
     SYNTAX         InetAddress
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The primary remote IP address. The type of this address is
          determined by the value of sctpAssocRemPrimAddrType.

          The client side will know this value after INIT_ACK message
          reception, the server side will know this value when sending
          INIT_ACK message. However, values will be filled in at
          established(4) state."

     ::= { sctpAssocEntry 6 }

   sctpAssocHeartBeatInterval OBJECT-TYPE
     SYNTAX         Unsigned32
     UNITS          "milliseconds"
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The current heartbeat interval..

          Zero value means no HeartBeat, even when the concerned
          sctpAssocRemAddrHBFlag object is true."
     DEFVAL {30000} -- milliseconds

     ::= { sctpAssocEntry 7 }


   sctpAssocState OBJECT-TYPE
     SYNTAX         INTEGER {
                         closed(1),
                         cookieWait(2),
                         cookieEchoed(3),
                         established(4),
                         shutdownPending(5),
                         shutdownSent(6),
                         shutdownReceived(7),
                         shutdownAckSent(8),
                         deleteTCB(9)
                         }
     MAX-ACCESS     read-write
     STATUS         current
     DESCRIPTION
          "The state of this SCTP association.

          As in TCP, deleteTCB(9) is the only value that may be set by a
          management station. If any other value is received, then the
          agent must return a wrongValue error.

          If a management station sets this object to the value
          deleteTCB(9), then this has the effect of deleting the TCB (as
          defined in SCTP) of the corresponding association on the
          managed node, resulting in immediate termination of the
          association.

          As an implementation-specific option, an ABORT chunk may be
          sent from the managed node to the other SCTP endpoint as a
          result of setting the deleteTCB(9) value. The ABORT chunk
          implies an ungraceful association shutdown."
     REFERENCE

          "Section 4 in RFC2960 covers the SCTP Association state
          diagram."

     ::= { sctpAssocEntry 8 }


   sctpAssocInStreams OBJECT-TYPE
     SYNTAX         Unsigned32 (1..65535)
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "Inbound Streams according to the negotiation at association
          start up."
     REFERENCE
          "Section 1.3 in RFC2960 includes a definition of stream.
          Section 5.1.1 in RFC2960 covers the streams negotiation
          process."

     ::= { sctpAssocEntry 9 }

   sctpAssocOutStreams OBJECT-TYPE
     SYNTAX         Unsigned32 (1..65535)
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "Outbound Streams according to the negotiation at association
          start up. "
     REFERENCE
          "Section 1.3 in RFC2960 includes a definition of stream.
          Section 5.1.1 in RFC2960 covers the streams negotiation
          process."

     ::= { sctpAssocEntry 10 }


   sctpAssocMaxRetr OBJECT-TYPE
     SYNTAX         Unsigned32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The maximum number of data retransmissions in the association
          context. This value is specific for each association and the
          upper layer can change it by calling the appropriate
          primitives. This value has to be smaller than the addition of
          all the maximum number for all the paths
          (sctpAssocRemAddrMaxPathRtx).

          A value of zero value means no retransmissions."
     DEFVAL {10} -- number of attempts

     ::= { sctpAssocEntry 11 }

   sctpAssocPrimProcess OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS read-only
         STATUS      current
         DESCRIPTION
          "This object identifies the system level process which holds
          primary responsibility for the SCTP association.
          Wherever possible, this should be the system's native unique
          identification number. The special value 0 can be used to
          indicate that no primary process is known.

          Note that the value of this object can be used as a pointer
          into the swRunTable of the HOST-RESOURCES-MIB(if the value is
          smaller than 2147483647) or into the sysApplElmtRunTable of
          the SYSAPPL-MIB."

     ::= { sctpAssocEntry 12 }


   -- Association Statistics

   sctpAssocT1expireds OBJECT-TYPE
     SYNTAX         Counter32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The T1 timer determines how long to wait for an
          acknowledgement after sending an INIT or COOKIE-ECHO chunk.
          This object reflects the number of times the T1 timer expires
          without having received the acknowledgement.

          Discontinuities in the value of this counter can occur at re-
          initialization of the management system, and at other times as
          indicated by the value of sctpAssocDiscontinuityTime."
     REFERENCE
          "Section 5 in RFC2960."


     ::= { sctpAssocEntry 13 }

   sctpAssocT2expireds OBJECT-TYPE
     SYNTAX         Counter32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The T2 timer determines how long to wait for an
          acknowledgement after sending a SHUTDOWN or SHUTDOWN-ACK
          chunk. This object reflects the number of times that T2- timer
          expired.

          Discontinuities in the value of this counter can occur at re-
          initialization of the management system, and at other times as
          indicated by the value of sctpAssocDiscontinuityTime."
   REFERENCE
          "Section 9.2 in RFC2960."
     ::= { sctpAssocEntry 14 }


   sctpAssocRtxChunks OBJECT-TYPE
     SYNTAX         Counter32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "When T3-rtx expires, the DATA chunks that triggered the T3
          timer will be re-sent according with the retransmissions
          rules. Every DATA chunk that was included in the SCTP packet
          that triggered the T3-rtx timer must be added to the value of
          this counter.

          Discontinuities in the value of this counter can occur at re-
          initialization of the management system, and at other times as
          indicated by the value of sctpAssocDiscontinuityTime."
     REFERENCE
          "Section 6 in RFC2960 covers the retransmission process and
          rules."

     ::= { sctpAssocEntry 15 }


   sctpAssocStartTime OBJECT-TYPE
     SYNTAX         TimeStamp
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The value of sysUpTime at the time that the association
          represented by this row enters the ESTABLISHED state, i.e.,
          the sctpAssocState object is set to established(4). The
          value of this object will be zero:
          - before the association enters the established(4)
            state, or
          - if the established(4) state was entered prior to
            the last re-initialization of the local network management
            subsystem."

     ::= { sctpAssocEntry 16 }

   sctpAssocDiscontinuityTime OBJECT-TYPE
     SYNTAX         TimeStamp
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The value of sysUpTime on the most recent occasion at which
          any one or more of this SCTP association counters suffered a
          discontinuity.  The relevant counters are the specific
          instances associated with this interface of any Counter32 or
          Counter64 object contained in the sctpAssocTable or
          sctpLocalAddrTable or sctpRemAddrTable.  If no such
          discontinuities have occurred since the last re-initialization
          of the local management subsystem, then this object contains a
          zero value. "
     REFERENCE
          "The inclusion of this object is recommended by RFC2578."

     ::= { sctpAssocEntry 17 }

   -- Expanded tables: Including Multi-home feature

   -- Local Address TABLE
   -- *******************

   sctpAssocLocalAddrTable OBJECT-TYPE
     SYNTAX         SEQUENCE OF SctpAssocLocalAddrEntry
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "Expanded table of sctpAssocTable based on the AssocId index.
          This table shows data related to each local IP address which
          is used by this association."

     ::= { sctpObjects  4 }

   sctpAssocLocalAddrEntry OBJECT-TYPE
     SYNTAX         SctpAssocLocalAddrEntry
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "Local information about the available addresses. There will
          be an entry for every local IP address defined for this
          association.
          Implementors need to be aware that if the size of
          sctpAssocLocalAddr exceeds 114 octets then OIDs of column
          instances in this table will have more than 128 sub-
          identifiers and cannot be accessed using SNMPv1, SNMPv2c, or
          SNMPv3."
     INDEX     {    sctpAssocId,   -- shared index
                    sctpAssocLocalAddrType,
                    sctpAssocLocalAddr }

     ::= { sctpAssocLocalAddrTable 1 }


   SctpAssocLocalAddrEntry ::= SEQUENCE {
     sctpAssocLocalAddrType        InetAddressType,
     sctpAssocLocalAddr            InetAddress,
     sctpAssocLocalAddrStartTime   TimeStamp
     }


   sctpAssocLocalAddrType OBJECT-TYPE
     SYNTAX         InetAddressType
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "Internet type of local IP address used for this association."


     ::= { sctpAssocLocalAddrEntry 1 }

   sctpAssocLocalAddr OBJECT-TYPE
     SYNTAX         InetAddress
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "The value of a local IP address available for this
          association. The type of this address is determined by the
          value of sctpAssocLocalAddrType."

     ::= { sctpAssocLocalAddrEntry 2 }

   sctpAssocLocalAddrStartTime OBJECT-TYPE
     SYNTAX         TimeStamp
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The value of sysUpTime at the time that this row was
          created."

     ::= { sctpAssocLocalAddrEntry 3 }

   -- Remote Addresses TABLE
   -- **********************

   sctpAssocRemAddrTable OBJECT-TYPE
     SYNTAX         SEQUENCE OF SctpAssocRemAddrEntry
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "Expanded table of sctpAssocTable based on the AssocId index.
          This table shows data related to each remote peer IP address
          which is used by this association."

     ::= { sctpObjects  5 }


   sctpAssocRemAddrEntry OBJECT-TYPE
     SYNTAX         SctpAssocRemAddrEntry
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "Information about the most important variables for every
          remote IP address. There will be an entry for every remote IP
          address defined for this association.

          Implementors need to be aware that if the size of
          sctpAssocRemAddr exceeds 114 octets then OIDs of column
          instances in this table will have more than 128 sub-
          identifiers and cannot be accessed using SNMPv1, SNMPv2c, or
          SNMPv3."
     INDEX   { sctpAssocId,   -- shared index
               sctpAssocRemAddrType,
               sctpAssocRemAddr }

     ::= { sctpAssocRemAddrTable 1 }

   SctpAssocRemAddrEntry ::= SEQUENCE {
     sctpAssocRemAddrType               InetAddressType,
     sctpAssocRemAddr                   InetAddress,
     sctpAssocRemAddrActive             TruthValue,
     sctpAssocRemAddrHBActive           TruthValue,
     sctpAssocRemAddrRTO                Unsigned32,
     sctpAssocRemAddrMaxPathRtx         Unsigned32,
     sctpAssocRemAddrRtx                Counter32,     -- Statistic
     sctpAssocRemAddrStartTime          TimeStamp
     }


   sctpAssocRemAddrType OBJECT-TYPE
     SYNTAX         InetAddressType
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "Internet type of a remote IP address available for this
          association."
     ::= { sctpAssocRemAddrEntry 1 }


   sctpAssocRemAddr OBJECT-TYPE
     SYNTAX         InetAddress
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "The value of a remote IP address available for this
          association. The type of this address is determined by the
          value of sctpAssocLocalAddrType."

     ::= { sctpAssocRemAddrEntry 2 }


   sctpAssocRemAddrActive OBJECT-TYPE
     SYNTAX         TruthValue
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "This object gives information about the reachability of this
          specific remote IP address.

          When the object is set to 'true' (1), the remote IP address is
          understood as Active. Active means that the threshold of no
          answers received from this IP address has not been reached.

          When the object is set to 'false' (2), the remote IP address
          is understood as Inactive. Inactive means that either no
          heartbeat or any other message was received from this address,
          reaching the threshold defined by the protocol."

     REFERENCE
          "The remote transport states are defined as Active and
          Inactive in the SCTP, RFC2960."

     ::= { sctpAssocRemAddrEntry 3 }


   sctpAssocRemAddrHBActive OBJECT-TYPE
     SYNTAX         TruthValue
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "This object indicates whether the optional Heartbeat check
          associated to one destination transport address is activated
          or not (value equal to true or false, respectively). "

     ::= { sctpAssocRemAddrEntry 4 }


   sctpAssocRemAddrRTO OBJECT-TYPE -- T3-rtx- Timer
     SYNTAX         Unsigned32
     UNITS          "milliseconds"
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The current Retransmission Timeout. T3-rtx timer as defined
          in the protocol SCTP."
     REFERENCE
          "Section 6.3 in RFC2960 deals with the Retransmission Timer
          Management."

     ::= { sctpAssocRemAddrEntry 5 }


   sctpAssocRemAddrMaxPathRtx OBJECT-TYPE
     SYNTAX         Unsigned32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "Maximum number of DATA chunks retransmissions allowed to a
          remote IP address before it is considered inactive, as defined
          in RFC2960."
     REFERENCE
          "Section 8.2, 8.3 and 14 in RFC2960."
     DEFVAL {5} -- number of attempts

     ::= { sctpAssocRemAddrEntry 6 }


   -- Remote Address Statistic

   sctpAssocRemAddrRtx OBJECT-TYPE
     SYNTAX         Counter32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "Number of DATA chunks retransmissions to this specific IP
          address. When T3-rtx expires, the DATA chunk that triggered
          the T3 timer will be re-sent according to the retransmissions
          rules. Every DATA chunk that is included in a SCTP packet and
          was transmitted to this specific IP address before, will be
          included in this counter.

          Discontinuities in the value of this counter can occur at re-
          initialization of the management system, and at other times as
          indicated by the value of sctpAssocDiscontinuityTime."

     ::= { sctpAssocRemAddrEntry 7 }

   sctpAssocRemAddrStartTime OBJECT-TYPE
     SYNTAX         TimeStamp
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The value of sysUpTime at the time that this row was
          created."

     ::= { sctpAssocRemAddrEntry 8 }

   -- ASSOCIATION INVERSE TABLE
   -- *************************

   -- BY LOCAL PORT

   sctpLookupLocalPortTable OBJECT-TYPE
     SYNTAX         SEQUENCE OF SctpLookupLocalPortEntry
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "With the use of this table, a list of associations which are
          using the specified local port can be retrieved."

     ::= { sctpObjects  6 }


   sctpLookupLocalPortEntry OBJECT-TYPE
     SYNTAX         SctpLookupLocalPortEntry
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "This table is indexed by local port and association ID.
          Specifying a local port, we would get a list of the
          associations whose local port is the one specified."

     INDEX         { sctpAssocLocalPort,
                    sctpAssocId }

     ::= { sctpLookupLocalPortTable 1 }


   SctpLookupLocalPortEntry::= SEQUENCE {
     sctpLookupLocalPortStartTime            TimeStamp
     }


   sctpLookupLocalPortStartTime OBJECT-TYPE
     SYNTAX         TimeStamp
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The value of sysUpTime at the time that this row was created.

          As the table will be created after the sctpAssocTable
          creation, this value could be equal to the sctpAssocStartTime
          object from the main table."

     ::= { sctpLookupLocalPortEntry 1 }

   -- BY REMOTE PORT

   sctpLookupRemPortTable OBJECT-TYPE
     SYNTAX         SEQUENCE OF SctpLookupRemPortEntry
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "With the use of this table, a list of associations which are
          using the specified remote port can be got"

     ::= { sctpObjects  7 }

   sctpLookupRemPortEntry OBJECT-TYPE
     SYNTAX         SctpLookupRemPortEntry
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "This table is indexed by remote port and association ID.
          Specifying a remote port we would get a list of the
          associations whose local port is the one specified "

     INDEX         { sctpAssocRemPort,
                    sctpAssocId }

     ::= { sctpLookupRemPortTable 1 }

   SctpLookupRemPortEntry::= SEQUENCE {
     sctpLookupRemPortStartTime              TimeStamp
     }


   sctpLookupRemPortStartTime OBJECT-TYPE
     SYNTAX         TimeStamp
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The value of sysUpTime at the time that this row was created.

          As the table will be created after the sctpAssocTable
          creation, this value could be equal to the sctpAssocStartTime
          object from the main table."

     ::= { sctpLookupRemPortEntry 1 }

   -- BY REMOTE HOST NAME

   sctpLookupRemHostNameTable OBJECT-TYPE
     SYNTAX         SEQUENCE OF SctpLookupRemHostNameEntry
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "With the use of this table, a list of associations with that
          particular host can be retrieved."
     ::= { sctpObjects  8 }


   sctpLookupRemHostNameEntry OBJECT-TYPE
     SYNTAX         SctpLookupRemHostNameEntry
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "This table is indexed by remote host name and association ID.
          Specifying a host name we would get a list of the associations
          specifying that host name as the remote one.

          Implementors need to be aware that if the size of
          sctpAssocRemHostName exceeds 115 octets then OIDs of column
          instances in this table will have more than 128 sub-
          identifiers and cannot be accessed using SNMPv1, SNMPv2c, or
          SNMPv3."

     INDEX         { sctpAssocRemHostName,
                    sctpAssocId }

     ::= { sctpLookupRemHostNameTable 1 }


   SctpLookupRemHostNameEntry::= SEQUENCE {
     sctpLookupRemHostNameStartTime               TimeStamp
     }

   sctpLookupRemHostNameStartTime OBJECT-TYPE
     SYNTAX         TimeStamp
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The value of sysUpTime at the time that this row was created.

          As the table will be created after the sctpAssocTable
          creation, this value could be equal to the sctpAssocStartTime
          object from the main table."

     ::= { sctpLookupRemHostNameEntry 1 }

   -- BY REMOTE PRIMARY IP ADDRESS

   sctpLookupRemPrimIPAddrTable OBJECT-TYPE
     SYNTAX         SEQUENCE OF SctpLookupRemPrimIPAddrEntry
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "With the use of this table, a list of associations that have
          the specified IP address as primary within the remote set of
          active addresses can be retrieved."

     ::= { sctpObjects  9 }


   sctpLookupRemPrimIPAddrEntry OBJECT-TYPE
     SYNTAX         SctpLookupRemPrimIPAddrEntry
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "This table is indexed by primary address and association ID.
          Specifying a primary address, we would get a list of the
          associations that have the specified remote IP address marked
          as primary.
          Implementors need to be aware that if the size of
          sctpAssocRemPrimAddr exceeds 114 octets then OIDs of column
          instances in this table will have more than 128 sub-
          identifiers and cannot be accessed using SNMPv1, SNMPv2c, or
          SNMPv3."

     INDEX         { sctpAssocRemPrimAddrType,
                    sctpAssocRemPrimAddr,
                    sctpAssocId }

     ::= { sctpLookupRemPrimIPAddrTable 1 }

   SctpLookupRemPrimIPAddrEntry::= SEQUENCE {
     sctpLookupRemPrimIPAddrStartTime             TimeStamp
     }


   sctpLookupRemPrimIPAddrStartTime OBJECT-TYPE
     SYNTAX         TimeStamp
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The value of SysUpTime at the time that this row was created.

          As the table will be created after the sctpAssocTable
          creation, this value could be equal to the sctpAssocStartTime
          object from the main table."

     ::= { sctpLookupRemPrimIPAddrEntry 1 }


   -- BY REMOTE IP ADDRESS

   sctpLookupRemIPAddrTable OBJECT-TYPE
     SYNTAX         SEQUENCE OF SctpLookupRemIPAddrEntry
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "With the use of this table, a list of associations that have
          the specified IP address as one of the remote ones can be
          retrieved. "

     ::= { sctpObjects  10 }


   sctpLookupRemIPAddrEntry OBJECT-TYPE
     SYNTAX         SctpLookupRemIPAddrEntry
     MAX-ACCESS     not-accessible
     STATUS         current
     DESCRIPTION
          "This table is indexed by a remote IP address and association
          ID. Specifying an IP address we would get a list of the
          associations that have the specified IP address included
          within the set of remote IP addresses."

     INDEX         { sctpAssocRemAddrType,
                    sctpAssocRemAddr,
                    sctpAssocId }

     ::= { sctpLookupRemIPAddrTable 1 }


   SctpLookupRemIPAddrEntry::= SEQUENCE {

     sctpLookupRemIPAddrStartTime            TimeStamp
     }

   sctpLookupRemIPAddrStartTime OBJECT-TYPE
     SYNTAX         TimeStamp
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The value of SysUpTime at the time that this row was created.

          As the table will be created after the sctpAssocTable
          creation, this value could be equal to the sctpAssocStartTime
          object from the main table."

     ::= { sctpLookupRemIPAddrEntry 1 }


   -- 4.1 Conformance Information

   sctpMibConformance    OBJECT IDENTIFIER ::= { sctpMIB 2 }
   sctpMibCompliances    OBJECT IDENTIFIER ::= { sctpMibConformance 1 }
   sctpMibGroups         OBJECT IDENTIFIER ::= { sctpMibConformance 2 }


   -- 4.1.1 Units of conformance

   --
   -- MODULE GROUPS
   --

   sctpLayerParamsGroup OBJECT-GROUP
     OBJECTS   { sctpRtoAlgorithm,
                 sctpRtoMin,
                 sctpRtoMax,
                 sctpRtoInitial,
                 sctpMaxAssocs,
                 sctpValCookieLife,
                 sctpMaxInitRetr
               }

     STATUS    current
     DESCRIPTION
          "Common parameters for the SCTP layer, i.e., for all the
          associations. They can usually be referred to as configuration
          parameters."

     ::= { sctpMibGroups 1 }

   sctpStatsGroup OBJECT-GROUP
     OBJECTS   { sctpCurrEstab,
                 sctpActiveEstabs,
                 sctpPassiveEstabs,
                 sctpAborteds,
                 sctpShutdowns,
                 sctpOutOfBlues,
                 sctpChecksumErrors,
                 sctpOutCtrlChunks,
                 sctpOutOrderChunks,
                 sctpOutUnorderChunks,
                 sctpInCtrlChunks,
                 sctpInOrderChunks,
                 sctpInUnorderChunks,
                 sctpFragUsrMsgs,
                 sctpReasmUsrMsgs,
                 sctpOutSCTPPacks,
                 sctpInSCTPPacks,
                 sctpDiscontinuityTime,
                 sctpAssocT1expireds,
                 sctpAssocT2expireds,
                 sctpAssocRtxChunks,
                 sctpAssocRemAddrRtx
               }

     STATUS    current
     DESCRIPTION
          "Statistics group. It includes the objects to collect state
          changes in the SCTP protocol local layer and flow control
          statistics."

     ::= { sctpMibGroups 2 }


   sctpPerAssocParamsGroup OBJECT-GROUP
     OBJECTS   { sctpAssocRemHostName,
                 sctpAssocLocalPort,
                 sctpAssocRemPort,
                 sctpAssocRemPrimAddrType,
                 sctpAssocRemPrimAddr,
                 sctpAssocHeartBeatInterval,
                 sctpAssocState,
                 sctpAssocInStreams,
                 sctpAssocOutStreams,
                 sctpAssocMaxRetr,
                 sctpAssocPrimProcess,
                 sctpAssocStartTime,
                 sctpAssocDiscontinuityTime,
                 sctpAssocLocalAddrStartTime,
                 sctpAssocRemAddrActive,
                 sctpAssocRemAddrHBActive,
                 sctpAssocRemAddrRTO,
                 sctpAssocRemAddrMaxPathRtx,
                 sctpAssocRemAddrStartTime
               }

     STATUS    current
     DESCRIPTION
          "The SCTP group of objects to manage per-association
          parameters. These variables include all the SCTP basic
          features."

     ::= { sctpMibGroups 3 }

   sctpPerAssocStatsGroup OBJECT-GROUP
                 OBJECTS
               { sctpAssocT1expireds,
                 sctpAssocT2expireds,
                 sctpAssocRtxChunks,
                 sctpAssocRemAddrRtx
               }

     STATUS    current
     DESCRIPTION
          "Per Association Statistics group. It includes the objects to
          collect flow control statistics per association."

     ::= { sctpMibGroups 4 }

   sctpInverseGroup OBJECT-GROUP
     OBJECTS   { sctpLookupLocalPortStartTime,
                sctpLookupRemPortStartTime,
                sctpLookupRemHostNameStartTime,
                sctpLookupRemPrimIPAddrStartTime,
                sctpLookupRemIPAddrStartTime
               }

     STATUS    current
     DESCRIPTION
          "Objects used in the inverse lookup tables."

     ::= { sctpMibGroups 5 }

   -- 4.1.2 Compliance Statements

   --
   -- MODULE COMPLIANCES
   --

   sctpMibCompliance MODULE-COMPLIANCE
     STATUS  current
     DESCRIPTION
          "The compliance statement for SNMP entities which implement
          this SCTP MIB Module.

          There are a number of INDEX objects that cannot be represented
          in the form of OBJECT clauses in SMIv2, but for which we have
          the following compliance requirements, expressed in OBJECT
          clause form in this description clause:

   -- OBJECT        sctpAssocLocalAddrType
   -- SYNTAX        InetAddressType {ipv4(1), ipv6(2)}
   -- DESCRIPTION
   --       It is only required to have IPv4 and IPv6 addresses without
   --       zone indices.
   --       The address with zone indices is required if an
   --       implementation can connect multiple zones.
   --
   -- OBJECT        sctpAssocLocalAddr
   -- SYNTAX        InetAddress (SIZE(4|16))
   -- DESCRIPTION
   --       An implementation is only required to support globally
   --       unique IPv4 and IPv6 addresses.
   --
   -- OBJECT        sctpAssocRemAddrType
   -- SYNTAX        InetAddressType {ipv4(1), ipv6(2)}
   -- DESCRIPTION
   --       It is only required to have IPv4 and IPv6 addresses without
   --       zone indices.
   --       The address with zone indices is required if an
   --       implementation can connect multiple zones.
   --
   -- OBJECT        sctpAssocRemAddr
   -- SYNTAX        InetAddress (SIZE(4|16))
   -- DESCRIPTION
   --       An implementation is only required to support globally
   --       unique IPv4 and IPv6 addresses.
   --
          "  -- closes DESCRIPTION clause of MODULE-COMPLIANCE

     MODULE  -- this module
          MANDATORY-GROUPS    {  sctpLayerParamsGroup,
                                 sctpPerAssocParamsGroup,
                                 sctpStatsGroup,
                                 sctpPerAssocStatsGroup
                              }

          OBJECT  sctpAssocRemPrimAddrType
          SYNTAX  InetAddressType { ipv4(1),
                                    ipv6(2)
                                  }
          DESCRIPTION
               "It is only required to have IPv4 and IPv6 addresses
               without zone indices.

               The address with zone indices is required if an
               implementation can connect multiple zones."

          OBJECT  sctpAssocRemPrimAddr
          SYNTAX  InetAddress (SIZE(4|16))
          DESCRIPTION
               "An implementation is only required to support globally
               unique IPv4 and globally unique IPv6 addresses."


          OBJECT sctpAssocState
          WRITE-SYNTAX  INTEGER { deleteTCB(9) }
          MIN-ACCESS read-only
          DESCRIPTION
               "Only the deleteTCB(9) value MAY be set by a management
               station at most. A read-only option is also considered to
               be compliant with this MIB module description."

          GROUP sctpInverseGroup
          DESCRIPTION
               "Objects used in inverse lookup tables. This should be
               implemented, at the discretion of the implementers, for
               easier lookups in the association tables"

     ::= { sctpMibCompliances 1 }

   END